package cn.z2huo.leetcode.problem.NO_0008;
/*
* asc2码对照表
* - 为45
* + 为43
* 0--9为 48 - 57
* */
public class Main {
    public int atoi(String str){
        // 用来消除字符串的前导空白
        str = str.trim();
        StringBuffer sb = new StringBuffer();
        // 用来判断字符串的开头是否为要求的类型，不符合直接跳出
        char flagStart = str.charAt(0);
        if(flagStart==45 || flagStart==43 || (flagStart>=48&&flagStart<=57)){
            sb.append(flagStart);
            // 继续遍历字符串，找出符合规则的符号并添加到stringBuffer中
            for(int i=1; i<str.length(); i++){
                char flag = str.charAt(i);
                if(flag>=48&&flag<=57){
                    sb.append(flag);
                }else{
                    break;
                }
            }
            // 判断所取出来的整数是否溢出
            int result;
            try {
                result = Integer.parseInt(sb.toString());
            }catch (NumberFormatException e){
                if(sb.toString().startsWith("-")) {
                    return Integer.MIN_VALUE;
                }else {
                    return Integer.MAX_VALUE;
                }
            }
        }
        return 0;
    }

    public static void main(String[] args){
        String testStr = "  -91283472332 do you have 80 yuan?";
        Main m = new Main();
        int result = m.atoi(testStr);
        System.out.println(result);
    }
}